//流式获取接口数据，只支持post方法
module.exports = async function (args) {
    //url 请求地址
    //method 请求方式
    //headers 请求头
    //body 请求体
    //read 读取中，返回本次内容及当前内容
    //done 读取完成，返回完整内容
    args = args || {}
    let headers = args.headers || {}
    headers['Content-Type'] = headers['Content-Type'] || 'application/json'

    const response = await fetch(args.url, {
        method: args.method || 'POST',
        headers,
        body: JSON.stringify(args.body)
    })

    const reader = response.body.getReader()
    const decoder = new TextDecoder()
    let text = ''
    while (true) {
        const { done, value } = await reader.read()
        if (!done) {
            const chunk = decoder.decode(value)
            text += chunk
            args.read(chunk,text)
        }else{
            if(args.done) args.done(text)
            return text
        }
    }
}